<?php
  echo '
          <h2>Options de phplister</h2>
          <div>';
    
    // Récupération des langues disponibles
    $liste['langue'] = array();
    if($dir_langue = scandir('langue'))
      {
        foreach($dir_langue as $fichier)
	  {
            if (!eregi('^\.',$fichier) && preg_match("/^[a-z]{2}\.php$/", $fichier))
	      {
                $liste['langue'][basename($fichier, '.php')] = basename($fichier, '.php');
	      }
	  }
      }
    
    // Récupération des themes disponibles 
    $liste['theme_dir'] = array();
    if($dir_theme = scandir('theme'))
      {
        foreach($dir_theme as $fichier)
	  {
            if (!eregi('^\.',$fichier) && is_dir('theme/'.$fichier))
	      {
                $liste['theme_dir']['./theme/'.$fichier.'/'] = $fichier;
	      }
	  }
      }

// Le formulaire
$form = new HTML_QuickForm('options','post','admin.php?page=option');

$form->setRequiredNote('<span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> champs obligatoires</span>');
$form->setJsWarnings('Erreur de saisie :','Cliquez sur OK pour corriger');
    
    foreach($conf as $el)
      {
        $nomOption  = $el['nomOption'];
        $valOption  = $el['valOption'];
        $typeOption = $el['typeOption'];
        $ranges = $min = $max = null;
        $optionRange = explode(';',$typeOption);
	
        if(isset($optionRange[1]))
	  {
            $ranges  = explode('-',$optionRange[1]);
            $min     = $ranges[0];
            if(isset($ranges[1])) $max = $ranges[1];
	  }
        
        $typeOption = $optionRange[0];
	
        
        // On cherche le type de l'element
        $type = 'text';
        if($typeOption == 'bool')
	  $type = 'advcheckbox';
	
        if($min == 'list') 
	  {
            $type = 'select';
            $min  = null;
        }
        $tmp = $form->addElement($type, $nomOption, $LANG[$nomOption].' ['.$nomOption.'] : ');
        
        // On charge les données
        if($type == 'select') 
        {
            $tmp->loadArray($liste[$nomOption]);
            $tmp->setSelected($valOption);
        }
        else
        {
            $tmp->setValue($valOption);
        }
        
        // Selon le type et les autres infos données on définit les régles
        $form->applyFilter($nomOption,'trim') ;
        if($typeOption != 'bool')
	  {
            $form->addRule($nomOption, 'Vous devez remplir '.$nomOption, 'required', '', 'client');
	  }
        elseif($typeOption == 'numeric')
	  {
            $form->addRule($nomOption, $nomOption.' doit être un nombre.', 'numeric','','client');
	  }
        if(!is_null($min)) 
	  {
            //$form->addRule($nomOption, $nomOption.' doit être un nombre entre '.$min.' et '.((!is_null($max))?$max:'l\'infinit'), 'numericValue', '', 'client');
	  }    
      }
    
    
    // Traitement
    if($form->validate())
      {      
	$ok = true;
	foreach($conf as $el)
	  {
	    $nomOption  = $el['nomOption'];
	    $valOption  = $el['valOption'];
	    
	    $nvelleValOption = $form->exportValue($nomOption);      
	    if(eregi('bool',$el['typeOption']))
	      {
		$nvelleValOption = (!empty($nvelleValOption)) ? 1 : 0;
	      }
	    
	    if($valOption != $nvelleValOption)
	      {
		$r = 'UPDATE '.$sql->getPrefix().'options SET valOption="'.$nvelleValOption.'" WHERE nomOption="'.$nomOption.'"';
		$ok = ($ok && $sql->executer($r));
	      }
	    
	  }
        if($ok) echo '<p id="message"><a href="admin.php?page=option">Options modifiées avec succès !</a></p>';
        if(!$ok) echo '<p id="message"><a href="admin.php?page=option">Il y a eu une ou plusieurs erreurs !</a></p>';
	
      }
    // Affichage
    else
      {
	$form->addElement('submit', 'submit', 'Modifier les options');
	$form->display();
      }
    
    echo '
          </div>';
?>
